#ifndef IMAGE_DESCRIPT
#define IMAGE_DESCRIPT

#include "../math/type_define.hpp"

/**
 * \brief this class is used to descripe the image
 * \tparam w image width
 * \tparam h image height
 * \tparam n image color components
 */
template <ui32 w, ui32 h, ui8 n>
class image_descriptor {
  ui8 _data[w * h * n];

public:
  ui32 width() const { return w; }
  ui32 height() const { return h; }
  ui8 comps() const { return n; }

  ui8 *getRawData() { return _data; }

  image_descriptor() { memset( _data, 255, sizeof( ui8 ) * w * h * n ); }
};

#endif